package com.hym.observe;

import java.util.Observable;
import java.util.Observer;
/**
 * 
 * @description：
 * <p>
 * 可被观察的模型，模式的运用场景分析
 * </p>
 * @author： HuYuMian
 *
 * @QQ：732476506
 *   
 * @version：
 *
 * @time：2015-9-18
 *
 */
public class ObservableModle extends Observable{
	@Override
	public synchronized void addObserver(Observer o) {
		super.addObserver(o);
	}
    @Override
    public synchronized void deleteObserver(Observer o) {
    	super.deleteObserver(o);
    }
    @Override
    public void notifyObservers() {
    	super.notifyObservers();
    }
    
    public void doSometing(String context){
    	System.out.println("被观察者"+context);
    	/*if (!changed)
            return;
        */
    	//上面这部分代码在observable.java的源码中，有判断处理。默认值是false，不执行update方法。
    	//所以使用java本身的observable.java的api，通知观察者对象update方法调用，必须先执行setChanged
    	//方法，并在执行notifyObservers方法后，会被重置，调用protected synchronized void clearChanged() {
        //changed = false;
        //}
    	setChanged();
    	notifyObservers(context);
    }
}
